package com.bigzero.workflow.common.utils;

import com.bigzero.workflow.common.constants.GlobalConstant;
import com.bigzero.workflow.common.exception.WorkflowException;
import com.bigzero.workflow.common.model.TokenInfo;
import org.apache.commons.lang3.StringUtils;

/**
 * token工具类
 *
 * @author fanxinxiong
 * @date 2025-02-13 13:55
 **/
public class TokenUtil {

//    /**
//     * 假装登录获取用户信息
//     *
//     * @return 用户信息
//     */
//    public static UserEntity getUser() {
//        UserService userService = SpringContextUtil.getBean(UserService.class);
//
//        // 在请求头获取用户id
//        String userId = ServletUtil.getHeader(GlobalConstant.TOKEN);
//        if(StringUtils.isEmpty(userId)) {
//            throw new WorkflowException("未登录！", 401);
//        }
//        UserEntity user = userService.getById(userId);
//        if (user == null) {
//            throw new WorkflowException("未知用户！", 401);
//        }
//        return user;
//    }

    /**
     * 假装登录获取用户信息
     *
     * @return 用户信息
     */
    public static TokenInfo getTokenInfo(){
        // 在请求头获取用户id
        String token = ServletUtil.getHeader(GlobalConstant.TOKEN);
        if(StringUtils.isEmpty(token)) {
            throw new WorkflowException("未登录！", 401);
        }
        JwtUtil jwtUtil = SpringContextUtil.getBean(JwtUtil.class);
        TokenInfo tokenInfo = jwtUtil.parseTokenInfo(token);
        if (tokenInfo == null) {
            throw new WorkflowException("未知用户！", 401);
        }
        return tokenInfo;
    }
}
